package cn.zqy.demo2.day05.Exception;
/**
 * 异常产生的原因分析：
 *      eg： 对给定的数组通过给定的角标获取元素
 *
 * */

public class Demo02ExceptionSource {
    public static void main(String[] args) {
        int[] arr = new int[]{1,23,3};

        /*由于没有找到3索引，程序运行出现异常，这个异常为：ArrayIndexOutOfBoundsException，程序认识。
        * 这个异常java本身有描述，描述的内容包括：【异常的名称，内容，产生的位置】。
        * java将这些内容封装到异常对象中： new ArrayIndexOutOfBoundsException(3)
        * ####1.因为getElement里面没有异常处理方法，(try..catch),jvm把此异常抛给方法的调用者，main方法
        * ####2.main接收到了此异常，也没有处理逻辑，继续抛给JVm处理
        * ####3.jvm收到异常，jvm先是把异常的内容，原因，位置打印在控制台。。同时终止了java程序
        * */
        int e =  getElement(arr, 3);
        System.out.println(e);

        // jvm中断程序了，不会执行下面代码
        System.out.println("========");
    }
    private static int getElement(int[] arr, int index) {
        return arr[index];
    }
}
